home *** CD-ROM | disk | FTP | other *** search
/ .net 2002 March / DotNetMagazine-Issue107-Coverdisc-NET107-02-03-PCMac.bin / pc / PC Software / free_browsing / DavesQckSearchDbar3-14 / dqsd.exe / src / search.nsi < prev   
Text File  |  2002-09-24  |  13KB  |  356 lines

  1. ; search.nsi
  2. ;
  3. ; Installs Dave's Quick Search Deskbar
  4. ;
  5.  
  6. ; The name of the installer
  7. Name "Dave's Quick Search Deskbar"
  8.  
  9. ; What is the minimum required version of IE?
  10. !Define IE_MAJOR_REQUIRED  5
  11. !Define IE_MINOR_REQUIRED  5
  12. !Define HOW_TO_TURN_ON_TOOLBAR "Right-click in your taskbar and select$\n$\n    Toolbar > Add Quick Search...$\n$\nto add the Quick Search Deskbar to your taskbar."
  13. !Define TITLE_AND_COPYRIGHT "Dave's Quick Search Deskbar$\nCopyright (c) 2002 David Bau$\nDistributed under the terms of the$\nGNU General Public License, Version 2"
  14.  
  15. ; Silent install
  16. DirShow hide
  17. CRCCheck on
  18. SetDatablockOptimize on
  19. Icon search.ico
  20. SilentInstall silent
  21. ;ShowInstDetails show
  22.  
  23. ; The file to write
  24. OutFile "..\dqsd.exe"
  25.  
  26. ; The default installation directory
  27. InstallDir "$PROGRAMFILES\Quick Search Deskbar"
  28.  
  29. ; Registry key to check for directory (so if you install again, it will
  30. ; overwrite the old one automatically)
  31. InstallDirRegKey HKCR "CLSID\{226b64e8-dc75-4eea-a6c8-abcb4d1d37ff}" "InstallDir"
  32.  
  33. ; The text to prompt the user to enter a directory
  34. DirText "Choose a directory to install in to:"
  35.  
  36. ; The stuff to install
  37. Section "Quick Search Deskbar (required)"
  38.  
  39.   ; Set output path to the installation directory.
  40.   SetOutPath $INSTDIR
  41.  
  42.   ; Confirm that the user really does want to install  
  43.   MessageBox MB_YESNO|MB_ICONINFORMATION|MB_DEFBUTTON2 "This will install Dave's Quick Search Deskbar.  Would you like to continue?" IDYES userconfirmedinstall
  44.   Abort
  45.   userconfirmedinstall:
  46.  
  47.   ; Verify that they've got the correct version of IE installed.
  48.   GetDLLVersion "shdocvw.dll" $1 $4
  49.   IntOp $2 $1 & 0xffff0000
  50.   IntOp $2 $2 / 0x00010000
  51.   IntOp $3 $1 & 0x0000ffff
  52.   IntOp $5 $4 & 0xffff0000
  53.   IntOp $5 $5 / 0x00010000
  54.   IntOp $6 $4 & 0x0000ffff
  55.   DetailPrint 'IE Version: $2.$3.$5.$6: OK'
  56.   IntCmp ${IE_MAJOR_REQUIRED} $2 ieMajorVersionOK ieVersionOK ieVersionNotOK
  57.   ieMajorVersionOK:
  58.   IntCmp ${IE_MINOR_REQUIRED} $3 ieVersionOK ieVersionOK ieVersionNotOK
  59.  
  60.   ieVersionNotOK:
  61.     MessageBox MB_YESNO|MB_ICONEXCLAMATION|MB_DEFBUTTON2 "This version of Dave's Quick Search Deskbar requires IE version ${IE_MAJOR_REQUIRED}.${IE_MINOR_REQUIRED} or higher.  You are currently running version $2.$3.$\n$\nWould you like to continue with the installation anyway?" IDYES ieVersionOK
  62.     Abort
  63.     
  64.   ieVersionOK:
  65.  
  66.   ; Old versions to delete
  67. ;  UnRegDLL $INSTDIR\DQSDTools.dll
  68. ;  Delete /REBOOTOK $INSTDIR\DQSDTools.dll
  69.   UnRegDLL $INSTDIR\dqsdt253.dll
  70.   Delete /REBOOTOK $INSTDIR\dqsdt253.dll
  71.   UnRegDLL $INSTDIR\dqsdt254.dll
  72.   Delete /REBOOTOK $INSTDIR\dqsdt254.dll
  73.   UnRegDLL $INSTDIR\dqsdt255.dll
  74.   Delete /REBOOTOK $INSTDIR\dqsdt255.dll
  75.   UnRegDLL $INSTDIR\dqsdt257.dll
  76.   Delete /REBOOTOK $INSTDIR\dqsdt257.dll
  77.   UnRegDLL $INSTDIR\dqsdt258.dll
  78.   Delete /REBOOTOK $INSTDIR\dqsdt258.dll
  79.  
  80.   ; install new DLL
  81.   SetOverwrite try
  82.   ClearErrors
  83.   File "..\DQSDTools.dll"
  84.   IfErrors seeifsame register
  85.  
  86.   ; If was unable to upgrade, see if files are the same anyway
  87.   seeifsame:
  88.   ClearErrors
  89.   GetDLLVersionLocal "..\DQSDTools.dll" $1 $2
  90.   GetDLLVersion $INSTDIR\DQSDTools.dll $3 $4
  91.   IfErrors isdifferent
  92.   IntCmpU $1 $3 test1 isdifferent isdifferent
  93.   test1:
  94.   IntCmpU $2 $4 test2 isdifferent isdifferent
  95.   test2:
  96.   ClearErrors
  97.   GetFileTimeLocal "..\DQSDTools.dll" $1 $2
  98.   GetFileTime $INSTDIR\DQSDTools.dll $3 $4
  99.   IfErrors isdifferent
  100.   IntCmpU $1 $3 test3 isdifferent isdifferent
  101.   test3:
  102.   IntCmpU $2 $4 register isdifferent isdifferent
  103.  
  104.   SetOverwrite on
  105.  
  106.   ; If different, install as another name and rename to correct file on reboot
  107.   isdifferent:
  108.   File /oname=DQSDTools.dll.ins "..\DQSDTools.dll"
  109.   Rename /REBOOTOK "$INSTDIR\DQSDTools.dll.ins" "$INSTDIR\DQSDTools.dll"
  110.  
  111.   ; We can register the dll and continue
  112.   register:
  113.   RegDLL $INSTDIR\DQSDTools.dll
  114.  
  115.   ; Determine if this is an upgrade
  116.   StrCpy $8 "The Deskbar has been upgraded.  $\nIf the search bar is already present $\non your taskbar, right-click on $\nthe handle to the left of the search bar $\nand select 'Refresh' to reload it.  $\nIf the search bar is not present, $\n${HOW_TO_TURN_ON_TOOLBAR}$\n$\n${TITLE_AND_COPYRIGHT}"
  117.   IfFileExists "$INSTDIR\search.htm" upgradebar
  118.   StrCpy $8 "The Deskbar has been installed.$\n$\n${HOW_TO_TURN_ON_TOOLBAR}$\n$\n${TITLE_AND_COPYRIGHT}"
  119.   upgradebar:
  120.  
  121.  
  122.   WriteUninstaller "$INSTDIR\uninstall.exe"
  123.  
  124.   ; Put files there
  125.   File "..\ChangeLog.txt"
  126.   File "..\aliases.txt"
  127.   File "..\calculate.js"
  128.   File "..\calendar.js"
  129.   File "..\categoryExpander.htc"
  130.   File "..\clock.js"
  131.   File "..\defer_tools.js"
  132.   File "..\helpbox.js"
  133.   File "..\helpmenu.js"
  134.   File "..\history.js"
  135.   File "..\holidays.ausnsw.xml"
  136.   File "..\holidays.fr.xml"
  137.   File "..\holidays.ca.xml"
  138.   File "..\holidays.it.xml"
  139.   File "..\holidays.nl.NL.xml"
  140.   File "..\holidays.nl.EN.xml"
  141.   File "..\holidays.sg.xml"
  142.   File "..\holidays.us.xml"
  143.   File "..\loader.js"
  144.   File "..\maximized.htm"
  145.   File "..\preferences.js"
  146.   File "..\readme.txt"
  147.   File "..\savesearchsettings.js"
  148.   File "..\search.css"
  149.   File "..\search.htm"
  150.   File "..\strings.js"
  151.   File "..\tools.js"
  152.   File "..\translate.js"
  153.   File "..\version.js"
  154.   File "..\version.xml"
  155.   File "..\versiondialog.htm"
  156.   File "..\xplocalsearch.css"
  157.   File "..\xptoolbarbot.bmp"
  158.   File "..\xptoolbartop.bmp"
  159.   SetOutPath "$INSTDIR\searches"
  160.   File "..\searches\*.xml"
  161.   SetOutPath "$INSTDIR\src"
  162.   File "search.ico"
  163.   File "search.nsi"
  164.   File "build.cmd"
  165.   File "clean.cmd"
  166.   File "scrub.cmd"
  167.   File "dqsd.xml"
  168.   SetOutPath "$INSTDIR\src\DQSDTools"
  169.   File "DQSDTools\DQSDTools.cpp"
  170.   File "DQSDTools\DQSDTools.def"
  171.   File "DQSDTools\DQSDTools.dep"
  172.   File "DQSDTools\DQSDTools.dsp"
  173.   File "DQSDTools\DQSDTools.dsw"
  174.   File "DQSDTools\DQSDTools.idl"
  175.   File "DQSDTools\DQSDTools.mak"
  176.   File "DQSDTools\DQSDTools.rc"
  177.   File "DQSDTools\Launcher.cpp"
  178.   File "DQSDTools\Launcher.h"
  179.   File "DQSDTools\Launcher.rgs"
  180.   File "DQSDTools\MenuBuilder.rgs"
  181.   File "DQSDTools\MenuBuilder.h"
  182.   File "DQSDTools\MenuBuilder.cpp"
  183.   File "DQSDTools\KeyboardHook.h"
  184.   File "DQSDTools\KeyboardHook.cpp"
  185.   File "DQSDTools\License.txt"
  186.   File "DQSDTools\StdAfx.cpp"
  187.   File "DQSDTools\StdAfx.h"
  188.   File "DQSDTools\Utilities.h"
  189.   File "DQSDTools\Utilities.cpp"
  190.   File "DQSDTools\resource.h"
  191.  
  192.   ; Create files with user preferences if they doesn't exist
  193.   SetOverwrite off
  194.   SetOutPath "$INSTDIR"
  195.   File "..\localaliases.txt"
  196.   File "..\mrumenu.txt"
  197.   File "..\localsearch.css"
  198.   File "..\localprefs.js"
  199.   SetOverwrite on
  200.   
  201.   ; Create subdirectory for user searches
  202.   CreateDirectory "localsearches"
  203.  
  204.   ; old source files used to live here
  205.   Delete $INSTDIR\license.txt
  206.   Delete $INSTDIR\search.ico
  207.   Delete $INSTDIR\search.nsi
  208.   Delete $INSTDIR\dqsd.xml
  209.   Delete $INSTDIR\search.xml
  210.  
  211.   ; old versions of searches to delete; most renamed or consolidated
  212.   Delete $INSTDIR\searches\aim.xml
  213.   Delete $INSTDIR\searches\ask.xml
  214.   Delete $INSTDIR\searches\at.xml
  215.   Delete $INSTDIR\searches\base.xml
  216.   Delete $INSTDIR\searches\bible.xml
  217.   Delete $INSTDIR\searches\cf.xml
  218.   Delete $INSTDIR\searches\chart.xml
  219.   Delete $INSTDIR\searches\day.xml
  220.   Delete $INSTDIR\searches\drink.xml
  221.   Delete $INSTDIR\searches\fc.xml
  222.   Delete $INSTDIR\searches\foldoc.xml
  223.   Delete $INSTDIR\searches\gga.xml
  224.   Delete $INSTDIR\searches\ggi.xml
  225.   Delete $INSTDIR\searches\ggc.xml
  226.   Delete $INSTDIR\searches\ggn.xml
  227.   Delete $INSTDIR\searches\gguk.xml
  228.   Delete $INSTDIR\searches\gwd.xml
  229.   Delete $INSTDIR\searches\ifl.xml
  230.   Delete $INSTDIR\searches\law.xml
  231.   Delete $INSTDIR\searches\lottery.xml
  232.   Delete $INSTDIR\searches\man.xml
  233.   Delete $INSTDIR\searches\map.xml
  234.   Delete $INSTDIR\searches\palm.xml
  235.   Delete $INSTDIR\searches\phone.xml
  236.   Delete $INSTDIR\searches\roman.xml
  237.   Delete $INSTDIR\searches\sbb.xml
  238.   Delete $INSTDIR\searches\sbc.xml
  239.   Delete $INSTDIR\searches\sbp.xml
  240.   Delete $INSTDIR\searches\short.xml
  241.   Delete $INSTDIR\searches\slash.xml
  242.   Delete $INSTDIR\searches\start.xml
  243.   Delete $INSTDIR\searches\tel.xml
  244.   Delete $INSTDIR\searches\tvgc.xml
  245.  
  246.   ; The unique uuid for our taskbar
  247.   StrCpy $9 "{226b64e8-dc75-4eea-a6c8-abcb4d1d37ff}"
  248.  
  249.   ; Write the installation path into the registry
  250.   WriteRegStr HKCR "CLSID\$9" "InstallDir" "$INSTDIR"
  251.  
  252.   ; ??? Keep this for a while for backward compatibility
  253.   WriteRegStr HKCR "CLSID\$9" "SecureFile" "$INSTDIR\search.htm"
  254.   WriteRegDWORD HKCR "CLSID\$9\SecureFiles" "$INSTDIR\search.htm" 0
  255.   WriteRegDWORD HKCR "CLSID\$9\SecureFiles" "$INSTDIR\settings.htm" 0
  256.  
  257.   ; Registry settings needed to function
  258.   WriteRegStr HKCR "CLSID\$9" "" "Quick Search"
  259.   WriteRegStr HKCR "CLSID\$9" "MenuText" "Add Quick Search..."
  260.   WriteRegStr HKCR "CLSID\$9" "HelpText" "Dave's Quick Search Deskbar"
  261.   WriteRegStr HKCR "CLSID\$9\Implemented Categories\{00021492-0000-0000-C000-000000000046}" "" ""
  262.   WriteRegStr HKCR "CLSID\$9\InprocServer32" "" "$SYSDIR\shdocvw.dll"
  263.   WriteRegStr HKCR "CLSID\$9\InprocServer32" "ThreadingModel" "Apartment"
  264.   WriteRegStr HKCR "CLSID\$9\Instance" "CLSID" "{7BA4C742-9E81-11CF-99D3-00AA004AE837}"
  265.   WriteRegStr HKCR "CLSID\$9\Instance\InitPropertyBag" "Url" "$INSTDIR\search.htm"
  266.  
  267.   ; Uninstallation keys
  268.   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$9" "DisplayName" "Dave's Quick Search Deskbar (remove only)"
  269.   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$9" "UninstallString" '"$INSTDIR\uninstall.exe"'
  270.  
  271.   ; Message box
  272.   IfRebootFlag rebootmsg norebootmsg
  273.     rebootmsg:
  274.       MessageBox MB_YESNO|MB_ICONINFORMATION|MB_DEFBUTTON1 "The Deskbar has been upgraded.$\nYou must reboot before it will work correctly.$\nAfter rebooting, if the search bar$\nis not visible, ${HOW_TO_TURN_ON_TOOLBAR}$\n$\nWould you like to reboot now (recommended)?" IDYES doreboot
  275.       ; MessageBox MB_OK|MB_ICONINFORMATION "Please remember to reboot before using the search bar.$\n$\n${TITLE_AND_COPYRIGHT}"
  276.       Goto endinstall
  277.     
  278.     norebootmsg:
  279.       MessageBox MB_OK|MB_ICONINFORMATION "$8"
  280.       Goto endinstall
  281.  
  282.     doreboot:
  283.       Reboot
  284.  
  285.    endinstall:
  286. SectionEnd
  287.  
  288. ; uninstall stuff
  289.  
  290. UninstallText "Click next to uninstall Dave's Quick Search Deskbar."
  291.  
  292. ; special uninstall section.
  293. Section "Uninstall"
  294.  
  295.   ; The unique uuid for our taskbar
  296.   StrCpy $9 "{226b64e8-dc75-4eea-a6c8-abcb4d1d37ff}"
  297.  
  298.   ; Unregister DQSDTools
  299.   UnRegDLL $INSTDIR\DQSDTools.dll
  300.  
  301.   ; remove registry keys
  302.   DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\$9"
  303.   DeleteRegKey HKCR "CLSID\$9"
  304.  
  305.   ; remove files
  306.   Delete /REBOOTOK $INSTDIR\DQSDTools.dll
  307.   Delete /REBOOTOK $INSTDIR\ChangeLog.txt
  308.   Delete /REBOOTOK $INSTDIR\aliases.txt
  309.   Delete /REBOOTOK $INSTDIR\calculate.js
  310.   Delete /REBOOTOK $INSTDIR\calendar.js
  311.   Delete /REBOOTOK $INSTDIR\categoryExpander.htc
  312.   Delete /REBOOTOK $INSTDIR\clock.js
  313.   Delete /REBOOTOK $INSTDIR\defer_tools.js
  314.   Delete /REBOOTOK $INSTDIR\helpbox.js
  315.   Delete /REBOOTOK $INSTDIR\helpmenu.js
  316.   Delete /REBOOTOK $INSTDIR\history.js
  317.   Delete /REBOOTOK $INSTDIR\holidays.ausnsw.xml
  318.   Delete /REBOOTOK $INSTDIR\holidays.fr.xml
  319.   Delete /REBOOTOK $INSTDIR\holidays.ca.xml
  320.   Delete /REBOOTOK $INSTDIR\holidays.it.xml
  321.   Delete /REBOOTOK $INSTDIR\holidays.nl.NL.xml
  322.   Delete /REBOOTOK $INSTDIR\holidays.nl.EN.xml
  323.   Delete /REBOOTOK $INSTDIR\holidays.sg.xml
  324.   Delete /REBOOTOK $INSTDIR\holidays.us.xml
  325.   Delete /REBOOTOK $INSTDIR\loader.js
  326.   Delete /REBOOTOK $INSTDIR\maximized.htm
  327.   Delete /REBOOTOK $INSTDIR\menu.txt
  328.   Delete /REBOOTOK $INSTDIR\readme.txt
  329.   Delete /REBOOTOK $INSTDIR\search.css
  330.   Delete /REBOOTOK $INSTDIR\search.htm
  331.   Delete /REBOOTOK $INSTDIR\search.xml
  332.   Delete /REBOOTOK $INSTDIR\strings.js
  333.   Delete /REBOOTOK $INSTDIR\tools.js
  334.   Delete /REBOOTOK $INSTDIR\translate.js
  335.   Delete /REBOOTOK $INSTDIR\version.js
  336.   Delete /REBOOTOK $INSTDIR\version.xml
  337.   Delete /REBOOTOK $INSTDIR\versiondialog.htm
  338.   Delete /REBOOTOK $INSTDIR\xplocalsearch.css
  339.   Delete /REBOOTOK $INSTDIR\xptoolbarbot.bmp
  340.   Delete /REBOOTOK $INSTDIR\xptoolbartop.bmp
  341.   RmDir /r $INSTDIR\src
  342.   RmDir /r $INSTDIR\searches
  343.   RmDir /r $INSTDIR\addons
  344.  
  345.   ; Remove preferences too
  346.   Delete /REBOOTOK $INSTDIR\preferences.js
  347.  
  348.   ; MUST REMOVE UNINSTALLER, too
  349.   Delete /REBOOTOK $INSTDIR\uninstall.exe
  350.  
  351.   ; Delete directory
  352.   RmDir /r $INSTDIR
  353.  
  354. SectionEnd
  355.  
  356. ; eof